package com.jrx.anytxn.feign.api.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jrx.anytxn.common.constant.RegexConstant;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * txn跑批任务请求api
 *
 * @author chenj
 * @date 2022/10/13 16:30
 */
public class LimitRenewRequest implements Serializable {

    private static final long serialVersionUID = -5104853224664194792L;

    /**
     * 请求流水号
     */
    @NotBlank(message = "请求流水号不能为空")
    @Size(max = 32, message = "交易流水号必须小于32位")
    @Pattern(regexp = RegexConstant.ALL_CHARSET_AND_NUMBER, message = "流水号只能是英文字母和数字组成且不可为空")
    protected String reqSeq;

    /**
     * 客户号
     */
    @NotBlank(message = "客户号不能为空")
    private String customerId;
    /**
     * 客户姓名
     */
    private String custName;
    /**
     * 产品编号
     */
    @NotBlank(message = "产品编号不能为空")
    private String productId;
    /**
     * 原授信金额
     */
    @NotNull(message = "原授信金额不能为空")
    private BigDecimal origCreditLimit;
    /**
     * 授信金额
     */
    private BigDecimal creditLimit;
    /**
     * 原额度失效日期
     */
    @NotNull(message = "原额度失效日期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date origExpiryDate;
    /**
     * 额度生效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date effectiveDate;
    /**
     * 额度失效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expiryDate;
    /**
     * 是否已续签
     */
    private String renewFlag;

    /**
     * 风控返回的续签状态 0：额度不可续签，1：可续期
     */
    private String renewType;

    /**
     * 客群类型
     */
    private String rist_customer_group;
    /**
     * 近三个月是否调额
     */
    private String latset3mte;
    /**
     * 近三个月额度平均使用率
     */
    private String averageuesed_lateset3m;
    /**
     * 有效期内是否出现三天以上逾期
     */
    private String daysoverdue_3;
    /**
     * 是否有过至少次成功还款记录（退款不算）
     * 1.是、0.否
     */
    private String successrepay_1;
    /**
     * 是否有过至少2次成功还款记录（退款不算）
     * 1.是、0.否
     */
    private String successrepay_2;
    /**
     * 成功还款记录数（退款不算）
     */
    private Integer successrepay_times;
    /**
     * 一级联系人姓名
     */
    private String contact_name_1st;
    /**
     * 一级联系人手机号
     */
    private String contact_mobile_1st;
    /**
     * 二级联系人姓名
     */
    private String contact_name_2ed;
    /**
     * 二级联系人手机号
     */
    private String contact_mobile_2ed;

    /**
     * 渠道号
     */
    @NotBlank(message = "渠道号不能为空")
    protected String channelNo;

    /**
     * 用户Id
     */
    @NotBlank(message = "用户Id不能为空")
    protected String userId;

    /**
     * 租戶id
     * 表字段:tenant_id
     */
    private String tenantId;


    /**
     * 获取 请求流水号
     *
     * @return reqSeq 请求流水号
     */
    public String getReqSeq() {
        return this.reqSeq;
    }

    /**
     * 设置 请求流水号
     *
     * @param reqSeq 请求流水号
     */
    public void setReqSeq(String reqSeq) {
        this.reqSeq = reqSeq;
    }

    /**
     * 获取 客户号
     *
     * @return customerId 客户号
     */
    public String getCustomerId() {
        return this.customerId;
    }

    /**
     * 设置 客户号
     *
     * @param customerId 客户号
     */
    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    /**
     * 获取 客户姓名
     *
     * @return custName 客户姓名
     */
    public String getCustName() {
        return this.custName;
    }

    /**
     * 设置 客户姓名
     *
     * @param custName 客户姓名
     */
    public void setCustName(String custName) {
        this.custName = custName;
    }

    /**
     * 获取 产品编号
     *
     * @return productId 产品编号
     */
    public String getProductId() {
        return this.productId;
    }

    /**
     * 设置 产品编号
     *
     * @param productId 产品编号
     */
    public void setProductId(String productId) {
        this.productId = productId;
    }

    /**
     * 获取 原授信金额
     *
     * @return origCreditLimit 原授信金额
     */
    public BigDecimal getOrigCreditLimit() {
        return this.origCreditLimit;
    }

    /**
     * 设置 原授信金额
     *
     * @param origCreditLimit 原授信金额
     */
    public void setOrigCreditLimit(BigDecimal origCreditLimit) {
        this.origCreditLimit = origCreditLimit;
    }

    /**
     * 获取 授信金额
     *
     * @return creditLimit 授信金额
     */
    public BigDecimal getCreditLimit() {
        return this.creditLimit;
    }

    /**
     * 设置 授信金额
     *
     * @param creditLimit 授信金额
     */
    public void setCreditLimit(BigDecimal creditLimit) {
        this.creditLimit = creditLimit;
    }

    /**
     * 获取 原额度失效日期
     *
     * @return origExpiryDate 原额度失效日期
     */
    public Date getOrigExpiryDate() {
        return this.origExpiryDate;
    }

    /**
     * 设置 原额度失效日期
     *
     * @param origExpiryDate 原额度失效日期
     */
    public void setOrigExpiryDate(Date origExpiryDate) {
        this.origExpiryDate = origExpiryDate;
    }

    /**
     * 获取 额度生效日期
     *
     * @return effectiveDate 额度生效日期
     */
    public Date getEffectiveDate() {
        return this.effectiveDate;
    }

    /**
     * 设置 额度生效日期
     *
     * @param effectiveDate 额度生效日期
     */
    public void setEffectiveDate(Date effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    /**
     * 获取 额度失效日期
     *
     * @return expiryDate 额度失效日期
     */
    public Date getExpiryDate() {
        return this.expiryDate;
    }

    /**
     * 设置 额度失效日期
     *
     * @param expiryDate 额度失效日期
     */
    public void setExpiryDate(Date expiryDate) {
        this.expiryDate = expiryDate;
    }

    /**
     * 获取 是否已续签
     *
     * @return renewFlag 是否已续签
     */
    public String getRenewFlag() {
        return this.renewFlag;
    }

    /**
     * 设置 是否已续签
     *
     * @param renewFlag 是否已续签
     */
    public void setRenewFlag(String renewFlag) {
        this.renewFlag = renewFlag;
    }

    /**
     * 获取 风控返回的续签状态 0：额度不可续签，1：可续期
     *
     * @return renewType 风控返回的续签状态 0：额度不可续签，1：可续期
     */
    public String getRenewType() {
        return this.renewType;
    }

    /**
     * 设置 风控返回的续签状态 0：额度不可续签，1：可续期
     *
     * @param renewType 风控返回的续签状态 0：额度不可续签，1：可续期
     */
    public void setRenewType(String renewType) {
        this.renewType = renewType;
    }

    /**
     * 获取 客群类型
     *
     * @return rist_customer_group 客群类型
     */
    public String getRist_customer_group() {
        return this.rist_customer_group;
    }

    /**
     * 设置 客群类型
     *
     * @param rist_customer_group 客群类型
     */
    public void setRist_customer_group(String rist_customer_group) {
        this.rist_customer_group = rist_customer_group;
    }

    /**
     * 获取 近三个月是否调额
     *
     * @return latset3mte 近三个月是否调额
     */
    public String getLatset3mte() {
        return this.latset3mte;
    }

    /**
     * 设置 近三个月是否调额
     *
     * @param latset3mte 近三个月是否调额
     */
    public void setLatset3mte(String latset3mte) {
        this.latset3mte = latset3mte;
    }

    /**
     * 获取 近三个月额度平均使用率
     *
     * @return averageuesed_lateset3m 近三个月额度平均使用率
     */
    public String getAverageuesed_lateset3m() {
        return this.averageuesed_lateset3m;
    }

    /**
     * 设置 近三个月额度平均使用率
     *
     * @param averageuesed_lateset3m 近三个月额度平均使用率
     */
    public void setAverageuesed_lateset3m(String averageuesed_lateset3m) {
        this.averageuesed_lateset3m = averageuesed_lateset3m;
    }

    /**
     * 获取 有效期内是否出现三天以上逾期
     *
     * @return daysoverdue_3 有效期内是否出现三天以上逾期
     */
    public String getDaysoverdue_3() {
        return this.daysoverdue_3;
    }

    /**
     * 设置 有效期内是否出现三天以上逾期
     *
     * @param daysoverdue_3 有效期内是否出现三天以上逾期
     */
    public void setDaysoverdue_3(String daysoverdue_3) {
        this.daysoverdue_3 = daysoverdue_3;
    }

    /**
     * 获取 成功还款记录数（退款不算）
     *
     * @return successrepay_times 成功还款记录数（退款不算）
     */
    public Integer getSuccessrepay_times() {
        return this.successrepay_times;
    }

    /**
     * 设置 成功还款记录数（退款不算）
     *
     * @param successrepay_times 成功还款记录数（退款不算）
     */
    public void setSuccessrepay_times(Integer successrepay_times) {
        this.successrepay_times = successrepay_times;
    }

    /**
     * 获取 一级联系人姓名
     *
     * @return contact_name_1st 一级联系人姓名
     */
    public String getContact_name_1st() {
        return this.contact_name_1st;
    }

    /**
     * 设置 一级联系人姓名
     *
     * @param contact_name_1st 一级联系人姓名
     */
    public void setContact_name_1st(String contact_name_1st) {
        this.contact_name_1st = contact_name_1st;
    }

    /**
     * 获取 一级联系人手机号
     *
     * @return contact_mobile_1st 一级联系人手机号
     */
    public String getContact_mobile_1st() {
        return this.contact_mobile_1st;
    }

    /**
     * 设置 一级联系人手机号
     *
     * @param contact_mobile_1st 一级联系人手机号
     */
    public void setContact_mobile_1st(String contact_mobile_1st) {
        this.contact_mobile_1st = contact_mobile_1st;
    }

    /**
     * 获取 二级联系人姓名
     *
     * @return contact_name_2ed 二级联系人姓名
     */
    public String getContact_name_2ed() {
        return this.contact_name_2ed;
    }

    /**
     * 设置 二级联系人姓名
     *
     * @param contact_name_2ed 二级联系人姓名
     */
    public void setContact_name_2ed(String contact_name_2ed) {
        this.contact_name_2ed = contact_name_2ed;
    }

    /**
     * 获取 二级联系人手机号
     *
     * @return contact_mobile_2ed 二级联系人手机号
     */
    public String getContact_mobile_2ed() {
        return this.contact_mobile_2ed;
    }

    /**
     * 设置 二级联系人手机号
     *
     * @param contact_mobile_2ed 二级联系人手机号
     */
    public void setContact_mobile_2ed(String contact_mobile_2ed) {
        this.contact_mobile_2ed = contact_mobile_2ed;
    }

    /**
     * 获取 渠道号
     *
     * @return channelNo 渠道号
     */
    public String getChannelNo() {
        return this.channelNo;
    }

    /**
     * 设置 渠道号
     *
     * @param channelNo 渠道号
     */
    public void setChannelNo(String channelNo) {
        this.channelNo = channelNo;
    }

    /**
     * 获取 用户Id
     *
     * @return userId 用户Id
     */
    public String getUserId() {
        return this.userId;
    }

    /**
     * 设置 用户Id
     *
     * @param userId 用户Id
     */
    public void setUserId(String userId) {
        this.userId = userId;
    }

    /**
     * 获取 租戶id      表字段:tenant_id
     *
     * @return tenantId 租戶id      表字段:tenant_id
     */
    public String getTenantId() {
        return this.tenantId;
    }

    /**
     * 设置 租戶id      表字段:tenant_id
     *
     * @param tenantId 租戶id      表字段:tenant_id
     */
    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    /**
     * 获取 是否有过至少次成功还款记录（退款不算）      1.是、0.否
     *
     * @return successrepay_1 是否有过至少次成功还款记录（退款不算）      1.是、0.否
     */
    public String getSuccessrepay_1() {
        return this.successrepay_1;
    }

    /**
     * 设置 是否有过至少次成功还款记录（退款不算）      1.是、0.否
     *
     * @param successrepay_1 是否有过至少次成功还款记录（退款不算）      1.是、0.否
     */
    public void setSuccessrepay_1(String successrepay_1) {
        this.successrepay_1 = successrepay_1;
    }

    /**
     * 获取 是否有过至少2次成功还款记录（退款不算）      1.是、0.否
     *
     * @return successrepay_2 是否有过至少2次成功还款记录（退款不算）      1.是、0.否
     */
    public String getSuccessrepay_2() {
        return this.successrepay_2;
    }

    /**
     * 设置 是否有过至少2次成功还款记录（退款不算）      1.是、0.否
     *
     * @param successrepay_2 是否有过至少2次成功还款记录（退款不算）      1.是、0.否
     */
    public void setSuccessrepay_2(String successrepay_2) {
        this.successrepay_2 = successrepay_2;
    }
}
